" УСТАНОВКА ПЛАГИНОВ {{{

call plug#begin('~/.config/nvim/plugged')

" colorschems
Plug 'ghifarit53/tokyonight-vim' " tokyonight
Plug 'morhetz/gruvbox' " gruvbox
Plug 'damage220/solas.vim' " solas
Plug 'nanotech/jellybeans.vim' " jellybeans 
Plug 'chriskempson/tomorrow-theme'
Plug 'henrynewcomer/vim-theme-papaya' " papaya
Plug 'gilgigilgil/anderson.vim' " anderson
Plug 'tomasiser/vim-code-dark' " codedark
Plug 'ErichDonGubler/vim-sublime-monokai' " sublimemonokai
Plug 'altercation/vim-colors-solarized' " solarized
Plug 'joshdick/onedark.vim' " onedark
Plug 'mhartington/oceanic-next' " OceanicNext
Plug 'lifepillar/vim-solarized8' " solarized8_flat
Plug 'alessandroyorba/alduin' " alduin
Plug 'duythinht/vim-coffee' " coffee

" Темы для строки состояния
Plug 'vim-airline/vim-airline'

" Автокомплит
Plug 'lifepillar/vim-mucomplete'

" Stylus подсветка и автокомплит
Plug 'iloginow/vim-stylus'

" Pug автокомплит
Plug 'dnitro/vim-pug-complete'

" Pug подсветка
Plug 'digitaltoad/vim-pug'

" Coffee
Plug 'kchmck/vim-coffee-script'

" Строка состояния
Plug 'vim-airline/vim-airline'

" Плавная прокрутка
Plug 'yuttie/comfortable-motion.vim'

" Поиск по файлам
Plug 'junegunn/fzf', { 'do': { -> fzf#install() } }
Plug 'junegunn/fzf.vim'

" Отображение отступов
Plug 'nathanaelkane/vim-indent-guides'

" r Тема в зависимости от типа файла
Plug 'caglartoklu/ftcolor.vim'

" Сниппеты
Plug 'honza/vim-snippets'
Plug 'SirVer/ultisnips'

" Отобразить метки
Plug 'kshenoy/vim-signature'

" Буфер
Plug 'mihaifm/bufstop'
Plug 'sandeepcr529/buffet.vim'

" Закрывашка
Plug 'moll/vim-bbye'

" Фолдинг
Plug 'pseewald/vim-anyfold'

" Ranger
Plug 'francoiscabrol/ranger.vim'
Plug 'rbgrouleff/bclose.vim'

" Автопара ковычек/скобок
Plug 'jiangmiao/auto-pairs'

" Терминал git
Plug 'tpope/vim-fugitive'

" Подсветка git-строк
Plug 'airblade/vim-gitgutter'

" Перемещение по тексту
Plug 'easymotion/vim-easymotion'

"Перемещение выделенного
" Plug 'matze/vim-move'

" Миникарта
Plug 'webastien/vim-ctags'
Plug 'preservim/tagbar'

" Emmet
Plug 'mattn/emmet-vim'

" Комментирование
Plug 'tpope/vim-commentary'

" Изменить обрамление
Plug 'tpope/vim-surround'

call plug#end()

" }}}
" РЕМАПЫ {{{

let mapleader =" " " Leader
inoremap kj <Esc>
noremap ' ;
noremap k j
noremap ; l
noremap l k
noremap j h
noremap <A-;> $
noremap <A-j> ^
noremap <A-h> 0
noremap <A-k> }
noremap <A-l> {
noremap <C-i> <C-d> 
noremap <C-o> <C-u>
noremap <F10> <F1>
inoremap <C-k> <left>
inoremap <C-l> <right>
inoremap <C-v> <ESC>"+pa
vnoremap <C-c> "+y
vnoremap <C-d> "+d
nnoremap <leader>/ :noh<CR>
noremap <leader>w :w<CR>
noremap <leader>x :x<CR>
" ПЕРЕМЕЩЕНИЕ МЕЖДУ ОКНАМИ
" map <silent> <C-h> :call WinMove('h')<CR>
" map <silent> <C-j> :call WinMove('j')<CR>
" map <silent> <C-k> :call WinMove('k')<CR>
" map <silent> <C-l> :call WinMove('l')<CR>

" function! WinMove(key)
" 	let t:curwin = winnr()
" 	exec "wincmd ".a:key
" 	if (t:curwin == winnr())
" 		if (match(a:key,'[jk]'))
" 			wincmd v
" 		else
" 			wincmd s
" 		endif
" 		exec "wincmd ".a:key
" 	endif
" endfunction

" }}}
" МАПЫ ПЛАГИНОВ {{{

" Закрывашка
noremap <leader>q :Bdelete<CR>

" Буфер
noremap <leader>a :Bufferlist<CR>

" Ranger (файловый менеджер)
noremap <leader>z :Ranger<CR>
" *ПЕРЕМЕЩАЛКА 
" <Leader>f{char} to move to {char}
map  <Leader>f <Plug>(easymotion-bd-f)
nmap <Leader>f <Plug>(easymotion-overwin-f)

" d{char}{char} to move to {char}{char}
nmap <Leader>d <Plug>(easymotion-overwin-f2)

" Move to line
map <Leader>s <Plug>(easymotion-bd-jk)
nmap <Leader>s <Plug>(easymotion-overwin-line)

" EMMET
" разворачивать аббревиатуру по нажатию на <C-e>
let g:user_emmet_expandabbr_key = '<C-j>'

" СНИППЕТЫ
let g:UltiSnipsExpandTrigger='<tab>'
let g:UltiSnipsJumpForwardTrigger="<C-b>"
let g:UltiSnipsJumpBackwardTrigger="<C-z>"

" *ПЛАВНАЯ ПРОКРУТКА
nnoremap <silent> <C-k> :call comfortable_motion#flick(200)<CR>
nnoremap <silent> <C-l> :call comfortable_motion#flick(-200)<CR>

" *ПОДСВЕТКА ОТСТУПОВ
map <F5> :IndentGuidesToggle<CR>

" }}}
" SET-ы {{{

hi Folded term=underline
colorscheme jellybeans
set foldmethod=marker
set tabstop=4 shiftwidth=4 softtabstop=4 expandtab
set formatoptions-=cro " в жопу автокоммент новой строки
set undofile " Сохранение изменений после перезагрузки
set backupdir=/tmp " бэкап
set directory=~/.nvim/tmp,.
set modifiable
set clipboard+=unnamedplus
syntax on " Включить подсветку синтаксиса
set background=dark
set number relativenumber
set cursorline cursorcolumn
set ignorecase " Игнорить регистр при поиске
set smartcase
set hlsearch incsearch
" Не игнорь кирилицу
set langmap=ёйцукенгшщзхъфывапролджэячсмитьбю;`qwertyuiop[]asdfghjkl\;'zxcvbnm\,.,ЙЦУКЕHГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ;QWERTYUIOP{}ASDFGHJKL:\"ZXCVBNM<>
set iminsert=0 " по умолчанию - латинская раскладка
set imsearch=0 " по умолчанию - латинская раскладка при поиске
set ic " игнорировать регистр при поиске
set is " использовать инкрементальный поиск
set guifont=monaco:h12:cRUSSIAN " установить шрифт
set showcmd " отображение выполняемой команды
set linebreak " перенос по словам, а не по буквам
set dy=lastline
set mouse+=a
set completeopt+=menuone " Для автокомплита
" set completeopt+=noselect
set completeopt+=noinsert
set shortmess+=c   " Shut off completion messages
set nowrap " Без переноса строк
set clipboard=unnamed
set t_Co=256
" set langmenu=ru_RU.UTF-8
" set encoding=utf-8
set fileencoding=utf-8
set encoding=utf-8
set termencoding=utf-8

" }}}
" НАСТРОЙКИ ПЛАГИНОВ {{{

" e *ТЕМА ОТ ТИПА ФАЙЛА
" let g:ftcolor_redraw = 1
" let g:ftcolor_default_color_scheme = 'tokyonight'
" let g:ftcolor_color_mappings = {}
" let g:ftcolor_color_mappings.javascript = 'gruvbox'
" let g:ftcolor_color_mappings.coffee = 'gruvbox'
" let g:ftcolor_color_mappings.python = 'alduin'
" let g:ftcolor_color_mappings.html = 'codedark'
" let g:ftcolor_color_mappings.pug = 'codedark'
" let g:ftcolor_color_mappings.css = 'onedark'
" let g:ftcolor_color_mappings.stylus = 'onedark'
" let g:ftcolor_color_mappings.less = 'onedark'
" let g:ftcolor_color_mappings.scss = 'onedark'
" let g:ftcolor_color_mappings.sass = 'onedark'

" *СТРОКА СОСТОЯНИЯ
let g:airline_theme='onedark'

" *Elet g:ranger_map_keys = 0
" let g:NERDTreeHijackNetrw = 0 " add this line if you use NERDTree
" let g:ranger_replace_netrw = 1 " open ranger when vim open a directory

" *АВТОКОМПЛИТ
let g:mucomplete#enable_auto_at_startup = 1

" *СНИППЕТЫ
let g:UltiSnipsSnippetDirectories=["UltiSnips", "my_snippets"]

" }}}
" МАКРОСЫ {{{

let @n='/{{{'
map <F8> @n<CR>
" }}}
let @p='?{{{'
map <F7> @p<CR>
" }}}
 let @c='i{{{�kb�kbkgcclllgcc'
map <F6> @c<CR>
" }}}

" }}}





